Systems and methods for assessing stabilization of videos

ABSTRACT

A video may be captured by an image capture device in motion. A stabilization trajectory for the video may reflect stabilization rotational positions to compensate for at least some of the motion of the image capture device. The stabilization trajectory may have a stabilization trajectory length. The stabilization of the visual content may be assessed based on the stabilization trajectory length.

FIELD

This disclosure relates to assessing stabilizations of videos.

BACKGROUND

A video may have been captured by an image capture device in motion. Themotion of the image capture device during the capture of the video maycause the video to appear jerky/shaky. Different stabilizations of thevideo may reduce motion within the video differently. Objectiveassessment of video stabilization to assess comparative stabilizationperformance of different stabilizations is desirable.

SUMMARY

This disclosure relates to assessing stabilization of videos. Videoinformation defining a video, stabilization information for the video,and/or other information may be obtained. The video may include videocontent having a progress length. The video content may include visualcontent captured by an image capture device during a capture duration.The image capture device may experience rotational positions as afunction of progress through the capture duration. The stabilizationinformation may characterize a stabilization trajectory for the video.The stabilization trajectory may reflect stabilization rotationalpositions as the function of progress through the capture duration forstabilization of the visual content. The stabilization rotationalpositions may compensate for at least some of the rotational positionsexperienced by the image capture device. The stabilization trajectorymay have a stabilization trajectory length. The stabilization of thevisual content may be assessed based on the stabilization trajectorylength and/or other information. A change in stabilization for thevisual content may be effectuated based on the assessment of thestabilization of the visual content and/or other information.

A system that assesses stabilization of videos may include one or moreelectronic storages, one or more processors, and/or other components. Anelectronic storage may store video information defining a video,information relating to the video, information relating to videocontent, information relating to visual content, information relating toan image capture device, information relating to a capture duration,information relating to stabilization of visual content, stabilizationinformation, information relating to stabilization trajectory,information relating to stabilization assessment, information relatingto a change in stabilization, and/or other information.

The processor(s) may be configured by machine-readable instructions.Executing the machine-readable instructions may cause the processor(s)to facilitate assessing stabilization of videos. The machine-readableinstructions may include one or more computer program components. Thecomputer program components may include one or more of a videoinformation component, a stabilization information component, astabilization assessment component, a change component, a comparisoncomponent, and/or other computer program components.

The video information component may be configured to obtain videoinformation and/or other information. Video information may define avideo. The video may include video content having a progress length. Thevideo content may include visual content captured by an image capturedevice during a capture duration. The image capture device mayexperience rotational positions as a function of progress through thecapture duration.

The stabilization information component may be configured to obtainstabilization information for the video and/or other information. Thestabilization information may characterize one or more stabilizationtrajectories for the video. A stabilization trajectory may reflectstabilization rotational positions as the function of progress throughthe capture duration for stabilization of the visual content. Thestabilization rotational positions may compensate for at least some ofthe rotational positions experienced by the image capture device. Thestabilization trajectory may have a stabilization trajectory length. Forexample, the stabilization information component may obtain firststabilization information for the video. The first stabilizationinformation may characterize a first stabilization trajectory having afirst stabilization trajectory length for the video. The firststabilization trajectory may reflect first stabilization rotationalpositions as the function of progress through the capture duration forfirst stabilization of the visual content.

The stabilization assessment component may be configured to assessstabilization of the visual content based on a stabilization trajectorylength and/or other information. For example, the stabilizationassessment component may assess the first stabilization of the visualcontent based on the first stabilization trajectory length and/or otherinformation.

The change component may be configured to effectuate one or more changesin stabilization for the visual content based on assessment of one ormore stabilizations of the visual content and/or other information. Insome implementations, a change in stabilization for the visual contentmay include a change in one or more stabilization parameters. In someimplementations, a change in stabilization for the visual content mayinclude a change in one or more stabilization techniques used tostabilize the visual content.

The comparison component may be configured to provide one or morecomparisons of assessment of different stabilizations of the visualcontent. For example, the comparison component may provide a comparisonof the assessment of the first stabilization of the visual content withan assessment of a second stabilization of the visual content and/orassessment(s) of other stabilization(s) of the visual content.

In some implementations, the assessment of the second stabilization ofthe visual content may be performed based on a second stabilizationtrajectory length of a second stabilization trajectory for the videoand/or other information. The second stabilization trajectory mayreflect second stabilization rotational positions as the function ofprogress through the capture duration for the second stabilization ofthe visual content. At least some of the second stabilization rotationalpositions of the second stabilization trajectory may be different fromcorresponding first stabilization rotational positions of the firststabilization trajectory.

In some implementations, the first stabilization trajectory may bedetermined based on a first stabilization technique and the secondstabilization trajectory may be determined based on a secondstabilization technique different from the first stabilizationtechnique.

In some implementations, the first stabilization trajectory may bedetermined based on a first set of stabilization parameters for astabilization technique and the second stabilization trajectory may bedetermined based on a second set of stabilization parameters for thestabilization technique. The first set of stabilization parameters maybe different from the second set of stabilization parameters.

In some implementations, the first set of stabilization parameters beingdifferent from the second set of stabilization parameters may includeone or more values of the first set of stabilization parameters beingdifferent from one or more corresponding values of the second set ofstabilization parameters. In some implementations, the first set ofstabilization parameters being different from the second set ofstabilization parameters may include the first set of stabilizationparameters including one or more stabilization parameters not includedin the second set of stabilization parameters.

In some implementations, the first set of stabilization parameters beingdifferent from the second set of stabilization parameters may includethe first set of stabilization parameters defining a first viewingwindow and the second set of stabilization parameters defining a secondviewing window different from the first viewing window. The firstviewing window may define a first extent of the visual content includedwithin a first punchout and the second viewing window may define asecond extent of the visual content included within a second punchout.The first viewing window being different from the second viewing windowmay include the first viewing window and the second viewing windowhaving different sizes and/or shapes.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a,” “an,” and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system that assesses stabilization ofvideos.

FIG. 2 illustrates an example method for assessing stabilization ofvideos.

FIG. 3 illustrates an example image capture device.

FIG. 4A illustrates example orientations of viewing windows with respectto images.

FIG. 4B illustrates example rotation of visual content.

FIG. 5 illustrates example observed trajectory, stabilization margin,and stabilized trajectories.

FIG. 6 illustrates example stabilization trajectories.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 for assessing stabilization of videos.The system 10 may include one or more of a processor 11, an interface 12(e.g., bus, wireless interface), an electronic storage 13, and/or othercomponents. In some implementations, the system 10 may include one ormore optical elements, one or more image sensors, one or more positionsensors, and/or other components. Video information defining a video,stabilization information for the video, and/or other information may beobtained by the processor 11. The video may include video content havinga progress length. The video content may include visual content capturedby an image capture device during a capture duration. The image capturedevice may experience rotational positions (orientations) as a functionof progress through the capture duration. The stabilization informationmay characterize a stabilization trajectory for the video. Thestabilization trajectory may reflect stabilization rotational positionsas the function of progress through the capture duration forstabilization of the visual content. The stabilization rotationalpositions may compensate for at least some of the rotational positionsexperienced by the image capture device. The stabilization trajectorymay have a stabilization trajectory length. The stabilization of thevisual content may be assessed based on the stabilization trajectorylength and/or other information. A change in stabilization for thevisual content may be effectuated based on the assessment of thestabilization of the visual content and/or other information.

The electronic storage 13 may be configured to include electronicstorage medium that electronically stores information. The electronicstorage 13 may store software algorithms, information determined by theprocessor 11, information received remotely, and/or other informationthat enables the system 10 to function properly. For example, theelectronic storage 13 may store video information defining a video,information relating to the video, information relating to videocontent, information relating to visual content, information relating toan image capture device, information relating to a capture duration,information relating to stabilization of visual content, stabilizationinformation, information relating to stabilization trajectory,information relating to stabilization assessment, information relatingto a change in stabilization, and/or other information.

The processor 11 may be configured to provide information processingcapabilities in the system 10. As such, the processor 11 may compriseone or more of a digital processor, an analog processor, a digitalcircuit designed to process information, a central processing unit, agraphics processing unit, a microcontroller, an analog circuit designedto process information, a state machine, and/or other mechanisms forelectronically processing information. The processor 11 may beconfigured to execute one or more machine-readable instructions 100 tofacilitate assessing stabilization of videos. The machine-readableinstructions 100 may include one or more computer program components.The machine-readable instructions 100 may include one or more of a videoinformation component 102, a stabilization information component 104, astabilization assessment component 106, a change component 108, acomparison component 110, and/or other computer program components.

Visual content (of image(s), of video frame(s), of video(s)) with afield of view may be captured by an image capture device during acapture duration. Visual content may refer to content of image(s), videoframe(s), and/or video(s) that may be consumed visually. A field of viewof visual content may define a field of view of a scene captured withinthe visual content. A capture duration may be measured/defined in termsof time durations and/or frame numbers. For example, visual content maybe captured during a capture duration of 60 seconds, and/or from onepoint in time to another point in time. As another example, 1800 imagesmay be captured during a capture duration. If the images are captured at30 images/second, then the capture duration may correspond to 60seconds. Other capture durations are contemplated.

The system 10 may be remote from the image capture device or local tothe image capture device. One or more portions of the image capturedevice may be remote from or a part of the system 10. One or moreportions of the system 10 may be remote from or a part of the imagecapture device. For example, one or more components of the system 10 maybe carried by a housing, such as a housing of an image capture device.For instance, optical element(s), image sensor(s), and/or positionsensor(s) of the system 10 may be carried by the housing of the imagecapture device. The housing may carry other components, such as theprocessor 11 and/or the electronic storage 13. References to a housingof an image capture device may refer to the image capture device, andvice versa. For example, references to position/motion of a housing ofan image capture device may refer to position/motion of the imagecapture device, and vice versa.

An image capture device may refer to a device for recording visualinformation in the form of images, videos, and/or other media. An imagecapture device may be a standalone device (e.g., camera) or may be partof another device (e.g., part of a smartphone, tablet). FIG. 3illustrates an example image capture device 302. The image capturedevice 302 may include a housing 312, and the housing 312 may carry (beattached to, support, hold, and/or otherwise carry) an optical element304, an image sensor 306, a position sensor 308, a processor 310, and/orother components. In some implementations, an image capture device mayinclude multiple optical elements and/or multiple image sensors. Thecombined field of view of the optical elements may include a sphericalfield of view. The multiple optical elements and/or multiple imagesensors may be used to capture spherical visual content. Sphericalvisual content may include a spherical field of view. Otherconfigurations of image capture devices are contemplated.

The optical element 304 may include instrument(s), tool(s), and/ormedium that acts upon light passing through theinstrument(s)/tool(s)/medium. For example, the optical element 304 mayinclude one or more of lens, mirror, prism, and/or other opticalelements. The optical element 304 may affect direction, deviation,and/or path of the light passing through the optical element 304. Theoptical element 304 may have a field of view 305. The optical element304 may be configured to guide light within the field of view 305 to theimage sensor 306. The field of view 305 may include the field of view ofa scene that is within the field of view of the optical element 304and/or the field of view of the scene that is delivered to the imagesensor 306. For example, the optical element 304 may guide light withinits field of view to the image sensor 306 or may guide light within aportion of its field of view to the image sensor 306. The field of view305 of the optical element 304 may refer to the extent of the observableworld that is seen through the optical element 304. The field of view305 of the optical element 304 may include one or more angles (e.g.,vertical angle, horizontal angle, diagonal angle) at which light isreceived and passed on by the optical element 304 to the image sensor306. In some implementations, the field of view 305 may be greater thanor equal to 180-degrees. In some implementations, the field of view 305may be smaller than or equal to 180-degrees.

The image sensor 306 may include sensor(s) that converts received lightinto output signals. The output signals may include electrical signals.For example, the image sensor 306 may include one or more of acharge-coupled device sensor, an active pixel sensor, a complementarymetal-oxide semiconductor sensor, an N-type metal-oxide-semiconductorsensor, and/or other image sensors. The image sensor 306 may generateoutput signals conveying information that defines visual content of oneor more images and/or one or more video frames of a video. For example,the image sensor 306 may be configured to generate a visual outputsignal based on light that becomes incident thereon during a captureduration. The visual output signal may convey visual information thatdefines visual content having the field of view.

The position sensor 308 may include sensor(s) that measures experiencedpositions and/or motions. The position sensor 308 may convertexperienced positions and/or motions into output signals. The outputsignals may include electrical signals. For example, the position sensor308 may refer to a set of position sensors, which may include one ormore inertial measurement units, one or more accelerometers, one or moregyroscopes, and/or other position sensors. The position sensor 308 maygenerate output signals conveying information that characterizespositions and/or motions of the position sensor 308 and/or device(s)carrying the position sensor 308, such as the image capture device 302and/or the housing 312.

For example, the position sensor 308 may be configured to generate aposition output signal based on positions of the image capture device302 during the capture duration. The position output signal may conveyposition information that characterizes positions of the image capturedevice 302 at different moments (points in time, time durations) withinthe capture duration. The position information may characterizepositions of the image capture device 302 as the function of progressthrough the capture duration. The position information may characterizepositions of the image capture device 302 based on specifictranslational and/or rotational positions of the image capture device302 and/or based on changes in translational and/or rotational positionsof the image capture device 302 as a function of progress through thecapture duration. That is, the position information may characterizetranslational and/or rotational positions of the image capture device302 and/or changes in translational and/or rotational positions (motion)of the image capture device 302 (e.g., direction, amount, velocity,acceleration) during the capture duration. In some implementations, theposition information may characterize translational and/or rotationalpositions of the image capture device 302 by characterizing changes intranslational and/or rotational positions (motion) of the image capturedevice 302 during the capture duration, and vice versa.

In some implementations, the position information may be determinedbased on signals generated by the position sensor 308 and independent ofthe information/signals generated by the image sensor 306. That is,position information may be determined without using visualcontent/images/videos generated by the image sensor 306. Use of visualcontent/images/videos to determine positions/motions of the imagecapture device 302 may be computationally expensive in terms ofprocessing power, processing time, and/or battery consumption. Using theinformation/signals from the position sensor 308 to determinepositions/motions of image capture device 302 may be computationallycheaper. That is, less processing power, processing time, and/or batteryconsumption may be required when positions/motions of the image capturedevice 302 are determined from the information/signals from the positionsensor 308 than the information/signals from the image sensor 306. Theposition information determined independent of the visual informationmay be used to determine the positions of the image capture device 302during the capture duration.

In some implementations, the position information may be determinedbased on the visual content and/or other information/signals from theimage sensor 306. For example, optical flow and/or other pixelcharacteristic analysis may be performed to estimate the positions ofthe image capture device 302 as the function of progress through thecapture duration.

In some implementations, the position information may include data fromthe position sensor (e.g., gyroscope data, accelerometer data) with timestamps per visual content capture at different moments. For example, theposition may include gyroscope data and/or accelerometer data perindividual video frames captured by the image capture device. In someimplementations, calibration of an inertial measurement unit may be usedto combine different data within the position information.

The image capture device 302 may experience motion during the captureduration. Motion of the image capture device 302 may include the imagecapture device experiencing different positions (e.g., translationalpositions, rotational positions) during the capture duration. That is,the image capture device 302 may capture visual content while changingpositions during the capture duration. The image capture device 302 mayexperience positions (e.g., translational positions, rotationalpositions) as a function of progress through the capture duration.Different positions of the image capture device 302 at which the visualcontent is captured may correspond to different moments within theprogress length of the visual content.

Motion of the image capture device 302 during visual content capture mayresult in motion within the visual content. For example, shaking of theimage capture device 302 during visual content capture may result inshaky motion within the captured visual content. Such motion within thevisual content may be unintentional and/or not be desirable.Stabilization of visual content may include reduction/removal of motionpresent in the visual content due to motion (e.g., mechanicaldisplacement, rotational motion, translational motion) of the imagecapture device 302 during visual content capture.

In some implementations, the visual content may be stabilized via one ormore punchouts of the visual content and/or other information. Suchstabilization of visual content may include using smaller spatialextents of the visual content to provide a punchout view of the visualcontent that creates a more stable view than when viewing the entiretyof the visual content. A punchout of the visual content may refer to anoutput of one or more portions of the visual content for presentation(e.g., current presentation, future presentation based on videogenerated using the punchout). A punchout of the visual content mayrefer to extents of the visual content that is obtained for viewingand/or extraction. A punchout of the visual content may include extentsof the visual content within one or more viewing windows. The extents ofthe visual content viewable/extracted within the viewing window may beused to provide views of different spatial extents of the visualcontent.

For example, the visual content may include a field of view, and thepunchout of the visual content may include the entire extent of thevisual content (the visual content within the entire field of view) orone or more extents of the visual content (the visual content within oneor more portions of the field of view). A viewing window may defineextents of the visual content to be included within a punchout of thevisual content as the function of progress through the progresslength/capture duration of the visual content. A viewing window maycorrespond to the entire duration of the progress length/captureduration or for one or more portions (e.g., portions including momentsof interest) of the progress length/capture duration. The punchout ofthe visual content may be presented on one or more displays, included inone or more videos, and/or otherwise used to stabilize the visualcontent.

Stabilization of visual content may be performed based on placement ofthe viewing window within the field of view of the visual content. Theplacement of the viewing window may compensate for the positions/motionof the image capture device during the capture duration. For example, aviewing window having a smaller size than the field of view of thevisual content may be used to provide a punchout of the visual content.The punchout (cropped view) may be moved within the field of view toprovide a stabilized view of the visual content.

The viewing window may be oriented with respect to the field of view ofthe visual content to provide a punchout of the visual content that isstable with respect to prior and/or next punchout of the visual content.For example, the viewing window may be oriented with respect to thefield of view of images/video frames captured by the image capturedevice to provide a punchout of the images/video frames such that thepresented content appears to have been captured with a stable/morestable image capture device (e.g., a punchout of a video frame beingstable/more stable with a punchout of the preceding video frame and/or asubsequent video frame). The viewing window may be oriented with respectto the field of view of the visual content based on movement of theviewing window and/or movement of the field of view (e.g., movement ofvisual content in image space).

For example, FIG. 4A illustrates example orientations of viewing windows404, 414, 424 with respect to images 400, 410, 420. The images 400, 410,420 may have a field of view 402. The viewing windows 404, 414, 424 mayhave a punchout field of view 406. The images 400, 410, 420 may includecapture of a scene within an angle defined by the field of view 402. Theviewing windows 404, 414, 424 may provide a punchout of the images 400,410, 420 to be used for video stabilization. The punchout field of view406 of the viewing windows 404, 414, 424 may be smaller than the fieldof view 402 of the images 400, 410, 420. The difference between thefield of view 402 and the punchout field of view 406 may define astabilization margin 408 within which the viewing window 404 may movewith respect to the image A 400/field of view 402. The stabilizationmargin 408 may specify how much the viewing window 404 may move whileremaining inside the field of view 402 of the visual content includedwithin the image A 402 (e.g., crop constraint).

The viewing window 404, 414, 424 may be placed within the field of view402 to perform video stabilization. For example, the viewing window 414may be rotated with respect to the field of view 402 of the image B 410while not going beyond the pixels captured within the image B 410. Theviewing window 424 may be laterally moved with respect to the field ofview 402 of the image C 420 while not going beyond the pixels capturedwithin the image C 420. The placements of the viewing window 404, 414,424 may be determined based on the positions/motions of the imagecapture device when the images 400, 410, 420 were captured to stabilizethe visual content.

For instance, the viewing window 414 may be oriented with respect to thefield of view 402 of the image B 410 to provide a punchout of the imageB 410 that is stable with respect to a prior and/or next punchout of theimages (e.g., stable with the punchout of the image A 400 using theviewing window 404 for the image A 400). Similarly, the viewing window424 may be oriented with respect to the field of view 402 of the image C420 to provide a punchout of the image C 420 that is stable with respectto a prior and/or next punchout of the images (e.g., stable with thepunchout of the image B 410 using the viewing window 414 for the image B410).

In some implementations, placement of the viewing window within thefield of view of the visual content may be determined based on positions(e.g., rotational positions, translational positions) of the imagecapture device during the capture duration, stabilization applied to thevisual content, and/or other information. The punchout of the visualcontent may include one or more spatial extents of the visual content asa function of progress through the progress length of the visual contentto compensate for different positions (translational positions and/orrotational positions) of the image capture device during thecorresponding moments within the capture duration. Differentstabilization applied to the visual content may result in differentplacements of the viewing window (e.g., different crop motion) beingdetermined to compensate for the positions of the image capture deviceduring the capture duration.

For example, one or more portions of the visual content captured fromlight within the field of view 305 may be presented on a display and/orused to present/generate stabilized visual content. The portions of thevisual content presented on the display/used to generate a video mayinclude those portions of the visual content within a viewing window. Aviewing window may define extents of the visual content (e.g., ofimage(s)/video frame(s)) to be included within a punchout. The viewingwindow may be determined so that the visual content within thepresentation/generated video does not include or includes less motionthan the visual content. The field of view 305 may be larger than a sizeof the punchout/viewing window used to generate stabilized visualcontent.

For instance, the visual content may include shaky/jerky footage due tomotion of the image capture device 302 during visual content capture,and the viewing window may be determined so that the portion of thevisual content that is presented/used for video generation does notappear shaky/jerky or appears less shaky/jerky. That is, apunchout/viewing window may be used to stabilize visual content capturedby the image capture device 302. For example, the shape, size, and/orthe location of the viewing window within the field of view of thevisual content may be determined to compensate for motion of the imagecapture device 302 during capture such that the video appears to havebeen captured from an image capture device 302 with less motion. Thevisual content captured by the image capture device 302 may be croppedto generate stabilized visual content.

A viewing window may define one or more extents of the visual content. Aviewing window may define extents of the visual content to be includedwithin stabilized visual content as the function of progress through theprogress length of the visual content. A viewing window may define whichportions of the visual content are included within the stabilized visualcontent at different moment within the progress length. Inclusion of theextents of the visual content defined by the viewing window within thestabilized visual content may effectuate stabilization of the visualcontent. For example, a viewing window may define which spatial portionsof the visual content captured by the image capture device during thecapture duration is presented on a display and/or included withinstabilized visual content. Stabilized visual content may be generated asoutputs of portions of the visual content captured by the image capturedevice, with the outputted portions including extent(s) of the visualcontent within the punchout/viewing window. Inclusion of the extent(s)of the visual content within the punchout/viewing window may effectuatestabilization of the visual content via selective cropping.

A viewing window may be located within the field of view of the visualcontent. Placement of the viewing window within the field of view of thevisual content may be determined based on positions (e.g., rationalpositions, translational positions, changes in positions) of the imagecapture device during the capture duration, stabilization (stabilizationtechnique) applied to the visual content, and/or other information. Forexample, the placement of the viewing window within the field of view ofthe visual content may change as a function of progress through theprogress length of the visual content based on rotational positions ofthe image capture device, changes in rotational positions (motion) ofthe image capture device at different moments within the captureduration (as a function of progress through the capture duration),and/or particular stabilization technique (e.g., stabilizationalgorithm) applied to compensate for the rotational positions/motions ofthe image capture device. A viewing window may be characterized byviewing directions, viewing sizes (e.g., viewing zoom, viewingmagnification), viewing rotations, and/or other information. Determiningthe placement of the viewing window may include determining one or moreof viewing directions, viewing sizes, viewing rotations, and/or othercharacteristics of the viewing window.

A viewing direction may define a direction of view for visual content. Aviewing direction may define the angle/visual portion of the visualcontent at which the viewing window may be directed. Changes in theviewing direction as the function of progress through the progresslength may effectuate movement (e.g., panning) of the viewing windowwithin the field of view of the visual content. For example, a viewingdirection may be defined based on rotation about an axis that defineslateral movement of the viewing window (e.g., yaw), rotation about anaxis that defines vertical movement of the viewing window (e.g., pitch),and/or rotation about other axes. The yaw and pitch values of theviewing direction may determine the location of the viewing windowwithin captured images/video frames.

A viewing size may define a size of the viewing window. A viewing sizemay define a size (e.g., size, magnification, viewing angle) of viewableextents of visual content. A viewing size may define the dimensions ofthe viewing window. In some implementations, a viewing size may definedifferent shapes of the viewing window/viewable extents. For example, aviewing window may be shaped as a rectangle, a triangle, a circle,and/or other shapes. A viewing size may define different aspect ratiosof the viewing window (e.g., 4:3 aspect ratio, 16:9 aspect ratio, 1:1aspect ratio).

A viewing rotation may define a rotation of the viewing window. Aviewing rotation may define one or more rotations of the viewing windowabout one or more axis. For example, a viewing rotation may be definedbased on rotation about an axis corresponding to a viewing direction(e.g., roll). Changes in the viewing rotation as the function ofprogress through the progress length may effectuate rotation of theviewing window within the field of view of the visual content.

In some implementations, the visual content may be stabilized via one ormore modifications of the visual content and/or other information. Suchstabilization of the visual content may include changes to the visualcontent itself (and/or creating a modified version/copy of the visualcontent) to provide stabilized visual content that is more stable thanthe original visual content. Modification of the visual content mayinclude one or more changes to visual characteristics of the visualcontent, such as one or more changes in pixel locations and/or pixelintensities. Modification of the visual content may include one or moreof rotation of the visual content, warping of the visual content, and/orother modification of the visual content. Rotation of the visual contentmay include change in how the visual content is oriented. The visualcontent may be rotated to compensate for different rotational positionsof the image capture device during the capture duration. Warping of thevisual content may include visual manipulation of one or more portionsof the visual content. Visual content may be warped to compensate fordifferent perspectives captured within the visual content due to motionof the image capture device during the capture duration. Visual contentmay be warped to provide rolling shutter compensation.

FIG. 4B illustrates example rotation of visual content 450. The visualcontent 450 may include a wide-angle visual content, such as sphericalvisual content. Spherical visual content may include full sphericalvisual content (360 degrees of capture) or partial spherical visualcontent (less than 360 degrees of capture). Partial spherical visualcontent may be referred to as panoramic visual content. During captureof the visual content 450, the image capture device may have experiencedmotion. For example, the image capture device may have rotated. Tocompensate for the rotation of the image capture device during captureduration, the visual content 450 may be rotated to the right, as shownby visual content rotation 460. The visual content rotation 460 maycause a point 452 within the visual content 450 to be moved to theright. The rotation of the visual content 450 may compensate for changesin rotational positions of the image capture device during the captureduration. The rotation of the visual content 450 may inverse some or allof the motion of the image capture device during the capture duration.For example, the image capture device may move by certain amounts aboutthe yaw, pitch, and/or roll axes, and the visual content 450 may berotated in the corresponding direction so that the visual contentappears to have been captured by a still (e.g., not rotating) imagecapture device.

The processor 310 may include one or more processors (logic circuitry)that provide information processing capabilities in the image capturedevice 302. The processor 310 may provide one or more computingfunctions for the image capture device 302. The processor 310 mayoperate/send command signals to one or more components of the imagecapture device 302 to operate the image capture device 302. For example,the processor 310 may facilitate operation of the image capture device302 in capturing image(s) and/or video(s), facilitate operation of theoptical element 304 (e.g., change how light is guided by the opticalelement 304), and/or facilitate operation of the image sensor 306 (e.g.,change how the received light is converted into information that definesimages/videos and/or how the images/videos are post-processed aftercapture).

The processor 310 may obtain information from the image sensor 306and/or the position sensor 308, and/or facilitate transfer ofinformation from the image sensor 306 and/or the position sensor 308 toanother device/component. The processor 310 may be remote from theprocessor 11 or local to the processor 11. One or more portions of theprocessor 310 may be part of the processor 11 and/or one or moreportions of the processor 10 may be part of the processor 310. Theprocessor 310 may include and/or perform one or more functionalities ofthe processor 11 shown in FIG. 1 .

Referring back to FIG. 1 , the processor 11 (or one or more componentsof the processor 11) may be configured to obtain information tofacilitate assessing stabilization of videos. Obtaining information mayinclude one or more of accessing, acquiring, analyzing, determining,examining, identifying, loading, locating, opening, receiving,retrieving, reviewing, storing, and/or otherwise obtaining theinformation. The processor 11 may obtain information from one or morelocations. For example, the processor 11 may obtain information from astorage location, such as the electronic storage 13, electronic storageof information and/or signals generated by one or more sensors,electronic storage of a device accessible via a network, and/or otherlocations. The processor 11 may obtain information from one or morehardware components (e.g., an image sensor, a position sensor) and/orone or more software components (e.g., software running on a computingdevice).

The video information component 102 may be configured to obtain videoinformation and/or other information. Obtaining video information mayinclude one or more of accessing, acquiring, analyzing, determining,examining, identifying, loading, locating, opening, receiving,retrieving, reviewing, storing, and/or otherwise obtaining the videoinformation. The video information component 102 may obtain videoinformation from one or more hardware components (e.g., an image sensor)and/or one or more software components (e.g., software running on acomputing device).

Video information may define a video. The video information component102 may obtain video information defining a video while the video isbeing captured by an image capture device. The video informationcomponent 102 may obtain video information defining a video after thevideo has been captured and stored in memory (e.g., the electronicstorage 13).

In some implementations, the video information component 102 may obtainvideo information based on user interaction with a userinterface/application (e.g., video editing application, video playerapplication), and/or other information. For example, a userinterface/application may provide option(s) for a user to select one ormore videos that are to be stabilized and/or played. The videoinformation defining the video may be obtained based on the user'sselection of the video content through the user interface/application.Other selections of video for retrieval of video information arecontemplated.

The video may include video content having a progress length. The videocontent may include visual content captured by an image capture deviceduring a capture duration. The progress length of the video content maycorrespond to the capture duration for the video. The progress length ofthe video content may be determined based on the capture duration. Theprogress length of the video content may be same as the captureduration, shorter than the capture duration (e.g., playback rate of thevideo content is faster than the capture rate of the video content),and/or longer than the capture duration (e.g., playback rate of thevideo content is slower than the capture rate of the video content).

The video content may include visual content of one or more scenescaptured by an image capture device during the capture duration. A scenemay refer to a place and/or a location in which the image capture deviceis located while capturing visual content. A scene may include one ormore portions of a place and/or a location at which the image capturedevice is directed during capture of the visual content. A scene mayinclude one or more portions of a place and/or a location that arewithin the field of view of the image capture device during capture ofthe visual content. A scene may include static things (e.g.,environment, non-moving objects) and/or dynamic things (e.g., movingobjects). The video content may include visual content captured atdifferent moments within the capture duration. The visual content may beviewable as a function of progress through the progress length. Thevisual content may have a field of view, such as the field of view 305shown in FIG. 3 . The visual content may include motion due to motion ofthe image capture device during the capture duration. The image capturedevice may experience positions (e.g., .translational positions,rotational positions) as a function of progress through the captureduration. Different positions of the image capture device during thecapture duration may result in motion within the visual content.

The video content may include other content, such as audio content.Audio content may be captured during capture of the visual content(e.g., recording of sound captured with the images/video frames) and/ormay be captured separately from the capture of the visual content (e.g.,song/music provide accompaniment for the playback of the images/videoframes, sound recorded before/after capture of the images/video frames).Audio content may include audio/sound captured (e.g., by soundsensor(s), microphone(s)) with the capture of the visual content and/oraudio/sound provided as an accompaniment for the visual content. Audiocontent may include one or more of voices, activities, songs, music,and/or other audio/sounds. For example, audio content may include soundscaptured by a single sound sensor or an array of sound sensors. Thesound sensor(s) may receive and convert sounds into output signals. Theoutput signals may convey sound information and/or other information.The sound information may define audio content in one or more formats,such as WAV, MP3, MP4, RAW. Audio content may include audio/soundgenerated by one or more computing devices, such as procedural audio.Audio content may be synchronized with the visual content. For example,audio content may include music, song, and/or soundtrack, and the visualcontent of the video content may be synchronized with music, song,and/or soundtrack.

The stabilization information component 104 may be configured to obtainstabilization information for the video and/or other information. Thestabilization information may characterize one or more stabilizationtrajectories for the video. A stabilization trajectory may refer to oneor more paths and/or progression of stabilization positions to be usedin stabilization of the visual content. A stabilization trajectory mayreflect stabilization positions as the function of progress through thecapture duration for stabilization of the visual content. Stabilizationpositions (stabilization rotation positions, stabilization translationalpositions) may indicate, reflect, and/or define offsets in positions ofthe image capture device during capture duration to compensate for someor all of the positions of the image capture device. Stabilizationpositions may indicate, reflect, and/or define offsets in observedtrajectory of the image capture device to generate one or morestabilized trajectories. Stabilization positions may indicate, reflect,and/or define how the visual content is to be stabilized as a functionof gross through the capture duration/progress length.

For example, stabilization positions may provide information from whichpunchout/viewing window placement and/or visual content modification isdetermined. For instance, stabilization positions may provideinformation on direction and/or amount by which a viewing windowdeviates from the center of the field of view of the visual contentand/or direction and/or amount by which the visual content is rotated.The stabilization positions may compensate for at least some of thepositions experienced by the image capture device during the captureduration.

An observed trajectory may refer to one or more paths and/or progressionof positions followed/experienced by the image capture device during thecapture duration. An observed trajectory may reflect positions of theimage capture device at different moments within the capture duration.The positions of the image capture device may include rotationalpositions (e.g., rotations about one or more axis of the image capturedevice) and/or translational positions of the image capture device. Anobserved trajectory of the image capture device during the captureduration may be determined based on the position informationcharacterizing specific translational and/or rotational positions of theimage capture device and/or changes in translational and/or rotationalpositions of the image capture device as a function of progress throughthe capture duration, and/or other information.

A stabilized trajectory may be generated based on stabilization of theobserved trajectory and/or other information. A stabilized trajectorymay refer to one or more paths and/or progression of (stabilized)positions from which punchout/viewing placement and/or visual contentrotation may be determined. The path(s) and/or progression of stabilizedposition(s) may be used in determining which portions of the visualcontent (punchouts) are included in stabilized visual content and/or how(e.g., in what direction and by what amount) the visual content is to berotated. The placement of the viewing window within the visual content(e.g., the orientation of the viewing window with respect to the fieldof view of the visual content) and/or rotation of the visual content maybe determined based on the stabilized trajectory. The placement of theviewing window with respect to the field of view of the visual contentcaptured at a moment may be determined based on the correspondingstabilized position (rotational position, translational position) withinthe stabilized trajectory at that moment and/or other information. Therotation of the visual content captured at a moment may be determinedbased on the corresponding stabilized position (rotational position,translational position) within the stabilized trajectory at that momentand/or other information.

A stabilized trajectory may reflect stabilized positions of a (virtual)image capture device at different moments within the capture duration. Astabilized positions may reflect actual and/or virtual positions of theimage capture device at different moments within the capture duration.An actual position may refer to a position that was taken by the imagecapture device during visual content capture. A virtual position mayrefer to a position that was not taken by the image capture deviceduring visual content capture. A virtual position may be offset(rotationally and/or translationally) from the actual position of theimage capture device.

A stabilized trajectory may have smoother changes in the positions(rotational positions, translational positions) of the image capturedevice than the observed trajectory. A stabilized trajectory may haveless jitters (slight irregular movement/variation), less abrupt changes,and/or less discontinuous changes in the positions (rotationalpositions, translational positions) of the image capture device than theobserved trajectory. The stabilized trajectory having smoother changesin positions than the observed trajectory may include high frequencychanges in the positions (rotational positions, translational positions)of the image capture device in the observed trajectory being removedfrom the stabilized trajectory. That is, the stabilized trajectory maynot include and/or may have fewer high frequencies changes in rotationaland/or translational positions of the image capture device than theobserved trajectory.

The stabilization of the observed trajectory into one or more stabilizedtrajectories may be performed based on one or more stabilizationtrajectories and/or other information. The difference between anobserved trajectory and a stabilized trajectory may be indicated,reflected, and/or defined by one or more one or more stabilizationtrajectories. Different stabilization of the visual content may resultin different stabilization trajectory and/or different stabilizedtrajectories. Different stabilization of the visual content may includeapplication of different stabilization techniques (e.g., stabilizationalgorithms) to the visual content, use of the same stabilizationtechnique with different stabilization parameters to the visual content,and/or other different stabilization of the visual content.

A stabilization trajectory may have a stabilization trajectory length.The stabilization trajectory length may refer to a measurement or anextent of the stabilization trajectory length from one end to another(from beginning to end of the progress length/capture duration).Different stabilization of the visual content may result in differentstabilization trajectory lengths. Different stabilization trajectorylengths may indicate or reflect different stabilization of the visualcontent. For example, stabilization of visual content with shorterstabilization trajectory length may include smaller and/or fewerdifferences between the observed trajectory and the stabilizedtrajectory while stabilization of visual content with longerstabilization trajectory length may include larger and/or moredifferences between the observed trajectory and the stabilizedtrajectory. In some implementations, shorter stabilization trajectorylengths may correspond to better attenuation of motion within the visualcontent (better stabilization performance) by the correspondingstabilization. For example, shorter stabilization trajectory mayindicate smaller amount/fewer number of motion of the punchout/viewingwindow and/or smaller amount/fewer number of rotation of the visualcontent and longer stabilization trajectory may indicate largeramount/more number of motion of the punchout/viewing window and/orlarger amount/more number of rotation of the visual content. Higherstabilization performance may correspond to smaller amount/fewer numberof motion of the punchout/viewing window, or vice versa.

For example, the stabilization information component 104 may beconfigured to obtain different stabilization information for the video.Different stabilization information may characterize differentstabilization trajectories for the video, which may provide differentstabilization of the video. For example, the stabilization informationcomponent 104 may obtain first stabilization information, secondstabilization information, and/or other stabilization information forthe video. The first stabilization information may characterize a firststabilization trajectory having a first stabilization trajectory lengthfor the video and the second stabilization information may characterizea second stabilization trajectory having a second stabilizationtrajectory length for the video. The first stabilization trajectory mayreflect first stabilization rotational positions as the function ofprogress through the capture duration for first stabilization of thevisual content. The second stabilization trajectory may reflect secondstabilization rotational positions as the function of progress throughthe capture duration for second stabilization of the visual content. Thefirst stabilization of the visual content may be different from thesecond stabilization of the visual content based on the firststabilization trajectory being different from the second stabilizationtrajectory. The difference between the first and second stabilizationtrajectories may include a difference in the first stabilizationtrajectory length and the second stabilization trajectory length of thestabilization trajectories.

FIG. 5 illustrates example observed trajectory 502, stabilization margin504, stabilized trajectory A 506, and stabilized trajectory B 508. Forexample, the observed trajectory 502 may reflect yaw orientation (e.g.,yaw rotational position) of the image capture device with respect to ayaw axis of the image capture device. The observed trajectory 502 may bedetermined from position information generated by one or more positionssensors (e.g., gyroscope data) and/or position information determinebased on visual content (e.g., optical flow analysis). Other types oftrajectory (e.g., pitch trajectory, roll trajectory, translationaltrajectory) are contemplated.

Generating a video including visual content (e.g., of image(s), of videoframe(s), of video(s)) captured along the observed trajectory 502 may beundesirable. For example, generating a video by outputting the imagescaptured along the observed trajectory 502 may result in a video withfootage that is shaky and/or that appears to include unintended cameramotion. For instance, sharp/quick changes in the yaw angle positions ofthe image capture device may result in abrupt changes in the directionof visuals within the video (e.g., quick left or right camera motion).Sharp/quick changes in the yaw angle positions of the image capturedevice may result in a shaky footage.

The observed trajectory 502 may be stabilized to generate the stabilizedtrajectory A 506 and the stabilized trajectory B 508. The stabilizationmargin 504 may indicate the amount of stabilization margin availablewithin the field of view of the visual content for placement of theviewing window/punchout. The stabilized trajectories 506, 508 may begenerated through use of different stabilization techniques, differentstabilization parameters, and/or other information. The stabilizedpositions of the stabilized trajectories 506, 508 may be used tostabilize the visual content (e.g., determine placement of the viewingwindow/punchout, determine rotation of the visual content). For example,the stabilized positions of the stabilized trajectories 506, 508 may beused to determine how the viewing window should be oriented with respectto the field of view of the visual content (e.g., how the punchouts forthe visual content may be laterally, vertically, and/or rotationallypositioned with respect to the field of view of the visual content)and/or how the visual content should be rotated to stabilize the visualcontent.

High frequency changes in the observed trajectory 502 may not beincluded in the stabilized trajectories 506, 508. Once high frequencychanges are removed from the stabilized trajectories 506, 508, it may bedifficult to objectively quantify the remaining smooth motion in thestabilized trajectories 506, 508. In particular, equally noted motionsmay be perceived differently. That is, low frequency changes in thestabilized trajectories 506, 508 may not be equally visually pleasant.For example, the stabilized trajectory B 508 may include sharper turns(e.g., changes in direction of view) than the stabilized trajectory A506. However, residual shakiness/changes in the stabilized trajectories506, 508 may not provide objective assessment of stabilizationperformance of different stabilizations. For example, the averageresidual shakiness/changes in the stabilized trajectories 506, 508 maybe similar, while the visual impression of the visual content stabilizedusing the stabilized trajectories 506, 508 may differ significantly.

FIG. 6 illustrates example stabilization trajectories 602, 604. Thestabilization trajectories 602, 604 may correspond to differentstabilizations of same visual content. The stabilization trajectories602, 604 may define stabilization positions as a function of progressthrough the progress length/capture duration of the visual content. Thestabilization trajectories 602, 604 may define offsets in observedtrajectory of the image capture device to generate one or morestabilized trajectories (e.g., stabilized trajectories 506, 508).Different stabilizations corresponding to the stabilization trajectories602, 604 may include application of different stabilization techniquesto the visual content, application of same stabilization technique withdifferent stabilization parameters to the visual content, and/or otherdifferent stabilization of the visual content. For example, based ondifference in stabilization technique/stabilization parameters appliedto the visual content, different stabilization trajectories 602, 604 maybe generated. Different stabilization of the visual content may resultin different characteristics (e.g., stabilization trajectory lengths)for the stabilization trajectories 602, 604.

In some implementations, different stabilization trajectories may bedetermined based on use of different stabilization techniques. Forexample, the stabilization trajectory A 602 may be determined based onuse of one stabilization technique and the stabilization trajectory B604 may be determined based on use of a different stabilizationtechnique.

In some implementations, different stabilization trajectories may bedetermined based on use of different stabilization parameters for thesame stabilization technique. For example, the stabilization trajectoryA 602 may be determined based on one set of stabilization parameters fora stabilization technique and the stabilization trajectory B 604 may bedetermined based on a different set of stabilization parameters for thestabilization technique.

In some implementations, the sets of stabilization parameters beingdifferent from each other may include one or more values of one set ofstabilization parameters being different from one or more correspondingvalues of another set of stabilization parameters. For example,different sets of stabilization parameters may define different sizes ofviewing windows for stabilization. For instance, one set ofstabilization parameters may define a first viewing window and anotherset of stabilization parameters may define a second viewing windowdifferent from the first viewing window. The first viewing window maydefine a first extent of the visual content included within a firstpunchout of the visual content. The second viewing window may define asecond extent of the visual content included within a second punchout ofthe visual content. The first viewing window being different from thesecond viewing window may include the first viewing window and thesecond viewing window having different sizes and/or shapes. Otherdifferences in values of stabilization parameters are contemplated.

In some implementations, the sets of stabilization parameters beingdifferent from each other may include one set of stabilizationparameters including one or more stabilization parameters not includedin another set of stabilization parameters. For example, one set ofstabilization parameters may define one or more constraints on maximumrotation (e.g., rotational direction, rotational speed, rotationalacceleration) of the visual content permitted for stabilization whileanother set of stabilization parameters may not define any constraint onmaximum rotation of the visual content permitted for stabilization.

The stabilization assessment component 106 may be configured to assessstabilization of the visual content based on a stabilization trajectoryand/or other information. Assessing stabilization of the visual contentmay include one or more of analyzing, calculating, determining,estimating, evaluating, examining, identifying, retrieving, reviewing,and/or otherwise assessing the stabilization of the visual content.Assessment of the stabilization of the visual content may includequalitative and/or quantitative assessment of the stabilization of thevisual content. For example, the stabilization assessment component 104may evaluate and/or estimate the nature of, quality of, and/or quantityreflecting the stabilization of the visual content.

Stabilization of the visual content may be assessed based on one or morecharacteristics of the corresponding stabilization trajector(ies). Thatis, stabilization of the visual content may be assessed based oncharacteristic(s) of the stabilization trajector(ies) used to stabilizethe visual content. A characteristic of a stabilization trajectory mayrefer to a feature and/or a quality of the stabilization trajectory. Acharacteristic of a stabilization trajectory may relate to one or moreof length, amplitude (e.g., maximum amplitude, minimum amplitude,amplitude range), changes in amplitude, and/or other features/qualitiesof the stabilization trajectory.

For example, the stabilization assessment component 106 may beconfigured to assess stabilization of the visual content based on astabilization trajectory length of a stabilization trajectory used tostabilize the visual content, and/or other information. For example, thestabilization assessment component may assess the first stabilization ofthe visual content based on the first stabilization trajectory length ofthe first stabilization trajectory and assess the second stabilizationof the visual content based on the second stabilization trajectorylength of the second stabilization trajectory and/or other information.Use of other characteristic(s) of the stabilization trajectory to assessstabilization of the visual content are contemplated.

Assessment of stabilization of visual content based on a stabilizationtrajectory may provide an objective assessment of the visual contentstabilization. Assessment of stabilization of visual content based on astabilization trajectory may enable objective comparison of differentstabilization performance. For example, different stabilizations ofvisual content performed using different stabilization techniques and/orsame stabilization technique with different stabilization parameters maybe objectively compared using the stabilization trajectory-basedassessment of visual content stabilization. Assessment of the visualcontent stabilization using the stabilization trajectory may enablebenchmark/comparison of different stabilizations and/or analysis (e.g.,non-regression analysis) of different stabilization parameters forstabilization techniques (e.g., during prototyping, integrating, and/orsetting up visual content stabilization). Assessment of the visualcontent stabilization using the stabilization trajectory may enablebenchmark/comparison of stabilization used for different visual contentcapture scenarios (e.g., comparison of how a stabilize techniqueperformed for visual content captured while walking versus runningversus flying).

In some implementations, assessment of stabilization of visual contentbased on a stabilization trajectory may provide information on how muchthe stabilized visual content differs from the original visual content.For example, assessment of stabilization of visual content based on astabilization trajectory may provide information on how much a viewingwindow deviates from the center of the field of view of the originalvisual content and/or how much the visual content is rotated tostabilize the visual content.

In some implementations, assessment of stabilization of visual contentmay include determination of one or more values (e.g., stabilizationmetric value) to indicate, reflect, and/or define the assessment. Thevalue(s) may be determined as quantitative and/or qualitativemeasurement of how well the visual content has been stabilized (e.g.,measuring visual pleasantness of the stabilized visual content). For theassessment of stabilization of visual content may include determinationof one or more of stabilization performance score, stabilizationperformance level, stabilization performance percentage, and/or otherquantitative and/or qualitative measurement of stabilizationperformance.

Assessment of stabilization of visual content based on a stabilizationtrajectory may enable differentiation of stabilization performance forsimilarly smooth stabilizations (e.g., stabilizations that result insimilar average residual shakiness/changes in the stabilizedtrajectories). Assessment of stabilization of visual content based on astabilization trajectory may enable differentiation of stabilizationperformance of a stabilization technique using different stabilizationparameters.

In some implementation, assessment of stabilization of visual contentbased on a stabilization trajectory may utilize the relationship betweenthe motion within the visual content and the length of the correspondingstabilization trajectory. For example, referring to FIG. 6 , a shorterorientation path of the stabilization trajectories 602, 604 maycorrespond to steadier motion and/or better usage of the stabilizationmargin.

For example, assessment of stabilization of visual content may includedetermination a stabilization performance score (L) based on thestabilization trajectory and/or other information. For stabilizationperformance score determination, the following notation may be used torepresent image capture device orientation at video frame i=1, . . . ,N:

-   -   {right arrow over (x)}_(i)=(x_(i), y_(i), z_(i))

The orientation may be represented in axis-angle domain obtainable fromrotation matrices (c.f., Rodrigues formula) as well as from any otherways to measure orientations (e.g., Euler angles, unit quaternions).Frame timestamps may be represented as the following:

-   -   {t_(i)}_(i=1) ^(N)

A length score of the stabilization trajectory may be computed based ondifferences in position/orientation and differences in frame timestamps,such as given by:

${L^{\prime}\left( {{\overset{\rightarrow}{x}}_{1},\ldots,\ {\overset{\rightarrow}{x}}_{N},t_{1},\ \ldots,t_{N}} \right)} = {\sum\limits_{i = 1}^{N - 1}\sqrt{{{{\overset{\rightarrow}{x}}_{i + 1} - {\overset{\rightarrow}{x}}_{i}}}^{2} - \left( {t_{i + 1} - t_{i}} \right)^{2}}}$

The above computation of the length score may depend on the progresslength/capture duration of the visual content (requiring equalization toenable comparison between stabilization of different visual content), aswell as theoretical minimum corresponding to perfectly steady visualcontent. The above dependencies may be removed from the stabilizationperformance score (L) by subtracting the progress length/captureduration of the visual content (e.g., the video duration) from thelength score:

L({right arrow over (x)} ₁ , . . . , {right arrow over (x)} _(N) , t ₁ ,. . . , t _(N))=L′({right arrow over (x)} ₁ , . . . , {right arrow over(x)} _(N) , t ₁ , . . . , t _(N))−(t _(N) −t ₁)

In some implementations, the stabilization performance score may becomputed in an axis-wise fashion to assess the motion around individualaxis separately.

The above computation of the stabilization performance score (L) mayhave the following properties. No motion may result in stabilizationperformance score of zero. Stabilization performance score for visualcontent of different progress length/capture duration may be comparableas if the shorter/shortest visual content were padded by keeping thelast video frame orientation to reach the progress length of thelonger/longest visual content. The stabilization performance score maybe invariant to motion translations in time. For example, thestabilization performance score may be insensitive to different lengthsof stabilized visual content. The stabilization performance score may berobust to no motion phases and the beginning and/or the end of theprogress length/capture duration (incentive to static phases at thebeginning and/or the end).

The stabilization performance score may depend on the crop motion/visualcontent rotation, but may not depend on intrinsic parameters of theimage capture device. This enables objective comparison of stabilizationperformed on visual content captured by different image capture devices.The stabilization performance score may be used to compare stabilizationperformance of stabilization of different visual content captured bydifferent image capture devices. Due to translation invariance, thecomparison of the stabilization performance of stabilization ofdifferent visual content captured by different image capture device maynot need synchronization among the image capture devices.

The change component 108 may be configured to effectuate one or morechanges in stabilization for the visual content based on assessment ofone or more stabilizations of the visual content and/or otherinformation. For example, the change component 108 may be configured toeffectuate one or more changes in stabilization for the visual contentbased on the stabilization performance score(s) and/or other assessmentsof the stabilization(s) of the visual content. Effectuating a change inthe stabilization for the visual content may include automaticallychanging the stabilization for the visual content based on theassessment of the stabilization(s), providing one or more options to auser to change the stabilization for the visual content based on theassessment of the stabilization(s), and/or other changing of thestabilization for the visual content.

A change in stabilization for the visual content may include one or moreof change in one or more stabilization techniques used to stabilize thevisual content (e.g., change in which stabilization technique is appliedto the visual content), change in one or more stabilization parametersfor the stabilization technique(s) applied to the visual content (e.g.,change in how the stabilization technique is applied to the visualcontent), and/or other changes in stabilization for the visual content.Such changes in stabilization of the visual content may allow assessmentof the stabilization(s) to be used to benchmark/compare differentstabilizations and/or analyze different stabilization parameters ofstabilization techniques (e.g., during prototyping, integrating, and/orsetting up visual content stabilization).

A stabilization technique may refer to one or more ways and/or methodsfor performing stabilization of visual content. A stabilizationtechnique may stabilize visual content via use of one or more viewingwindows/punchouts, modifications of the visual content (e.g., rotations,warping), and/or other ways/methods. Different stabilization techniquesmay stabilize visual content differently. Use of different stabilizationtechniques on visual content may result in different stabilized visualcontent. A stabilization technique may be defined and/or controlled byone or more stabilization parameters. A stabilization parameter mayrefer to a condition and/or a factor that defines and/or sets theconditions for stabilizing the visual content. A change in astabilization parameter may entirely change the stabilization of thevisual content and/or change one or more portions of the stabilizationof the visual content.

For example, a stabilization parameter may include condition(s) and/orfactor(s) that define how the viewing window/punchout of the visualcontent is determined, how the visual content is modified, and/or howthe stabilization and/or stabilized trajectories are generated. Forexample, a change in the stabilization parameter may include a change inthe viewing window. A change in the viewing window may include a changein a size, a shape, and/or other characteristics of the viewing window.For instance, the size of the viewing window may be decreased toincrease the stabilization margin. The change in the size of the viewingwindow may simulate change in zoom in the stabilized visual content. Theshape of the viewing window may be changed (e.g., from a wide viewingwindow providing a wide field of view punchout of the visual content toa linear viewing window providing a linear field of view punchout of thevisual content) to increase the stabilization margin. The change in theshape of the viewing window may simulate a change in projection (e.g.,from a wide-field of view projection to a rectilinear projection) in thestabilized visual content.

A change in the stabilization for the visual content may include achange in the stabilization trajectory generation and/or stabilizedtrajectory generation. For example, a change in the trajectorygeneration may include a change in a filter/smoothing factor used tosmooth the observed trajectory into the stabilized trajectory, a filterwidth for the filter/smoothing factor, and/or other settings for thetrajectory generation. For instance, different filters/smoothing factorsand/or filter width may be used to generate differentstabilization/stabilized trajectories with different curvatures.Different filters/smoothing factors and/or filter width may be used tochange how closely the stabilized trajectory follows the observedtrajectory or how much the stabilized trajectory deviates from theobserved trajectory. For instance, use of smaller filter width mayresult in generation of stabilized trajectory that more closely followsthe observed trajectory, which may reduce the number of stabilizationconstraint violation. Use of larger filter width may result ingeneration of stabilized trajectory that deviates more from the observedtrajectory. Other changes in the stabilization for the visual contentare contemplated.

In some implementations, assessment of stabilization and change instabilization for the visual content may be repeated to identify/selectone or more stabilization techniques and/or one or more stabilizationparameters to stabilize the visual content. For example, assessment ofstabilization and change in stabilization for the visual content may beperformed to tune the stabilization parameters of one or morestabilization techniques. Best/highest performing stabilizationtechnique/stabilization parameters (stabilizationtechnique/stabilization parameters resulting in best/smalleststabilization performance score) may be identified/selected to stabilizethe visual content. In some implementations, separateidentification/selection of the best/highest performing stabilizationtechniques may be performed for different capture scenarios. Forinstance, example, best/highest performing stabilizationtechnique/stabilization parameters may be separately identified/selectedfor different motions of the image capture device (e.g., differentstabilization technique/stabilization parametersidentification/selection for visual content captured while walkingversus running versus flying).

The comparison component 110 may be configured to provide one or morecomparisons of assessment of different stabilizations of the visualcontent. A comparison of assessment of different stabilization mayinclude identification and/or analysis of difference in assessments ofdifferent stabilizations (e.g., difference in stabilization performancescores), presentation of assessments of different stabilizations (e.g.,presentation of stabilization performance scores), and/or othercomparison of assessments of different stabilizations. A comparison ofassessment of different stabilizations of the visual content may be usedto identify/select one or more stabilization techniques (stabilizationselection) and/or one or more stabilization parameters (stabilizationtuning) to stabilize the visual content. A comparison of assessment ofdifferent stabilizations of the visual content may be used benchmarkdifferent stabilizations (e.g., different stabilization techniques,different stabilization parameters).

For example, the comparison component 110 may provide a comparison ofassessment of stabilization of the visual content performed using thestabilization trajectory A 602 with assessment of the differentstabilization of the visual content performed using the stabilizationtrajectory B 604, and/or assessment(s) of other stabilization(s) of thevisual content. The stabilization trajectories 602, 604 may reflectstabilization rotational positions as the function of progress throughthe progress length/capture duration for the stabilization of the visualcontent. At least some of the stabilization rotational positions of thestabilization trajectories 602, 604 may be different. That is, thestabilization trajectories 602, 604 may trace different paths and/orprogressions of stabilization positions (e.g., different offsets forstabilization).

The assessment of the stabilization using the stabilization trajectory A602 may be performed based on the stabilization trajectory length of thestabilization trajectory A 602 and/or other information, and theassessment of the stabilization using the stabilization trajectory B 604may be performed based on the stabilization trajectory length of thestabilization trajectory B 604 and/or other information. Comparison ofthe stabilization of the visual content performed using thestabilization trajectory A 602 with assessment of the differentstabilization of the visual content performed using the stabilizationtrajectory B 604 may include identification and/or analysis ofdifference in assessments of the stabilizations (e.g., difference instabilization performance scores), presentation of assessments of thestabilizations (e.g., presentation of stabilization performance scores),and/or other comparison of assessments of different stabilizations. Insome implementations, a comparison of assessment of one or morestabilizations may be made with respect to one or more standards and/orone or more benchmarks.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible (non-transitory)machine-readable storage medium may include read-only memory, randomaccess memory, magnetic disk storage media, optical storage media, flashmemory devices, and others, and a machine-readable transmission mediamay include forms of propagated signals, such as carrier waves, infraredsignals, digital signals, and others. Firmware, software, routines, orinstructions may be described herein in terms of specific exemplaryaspects and implementations of the disclosure, and performing certainactions.

In some implementations, some or all of the functionalities attributedherein to the system 10 may be provided by external resources notincluded in the system 10. External resources may include hosts/sourcesof information, computing, and/or processing and/or other providers ofinformation, computing, and/or processing outside of the system 10.

Although the processor 11 and the electronic storage 13 are shown to beconnected to the interface 12 in FIG. 1 , any communication medium maybe used to facilitate interaction between any components of the system10. One or more components of the system 10 may communicate with eachother through hard-wired communication, wireless communication, or both.For example, one or more components of the system 10 may communicatewith each other through a network. For example, the processor 11 maywirelessly communicate with the electronic storage 13. By way ofnon-limiting example, wireless communication may include one or more ofradio communication, Bluetooth communication, Wi-Fi communication,cellular communication, infrared communication, Li-Fi communication, orother wireless communication. Other types of communications arecontemplated by the present disclosure.

Although the processor 11 is shown in FIG. 1 as a single entity, this isfor illustrative purposes only. In some implementations, the processor11 may comprise a plurality of processing units. These processing unitsmay be physically located within the same device, or the processor 11may represent processing functionality of a plurality of devicesoperating in coordination. The processor 11 may be configured to executeone or more components by software; hardware; firmware; some combinationof software, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on the processor 11.

It should be appreciated that although computer components areillustrated in FIG. 1 as being co-located within a single processingunit, in implementations in which processor 11 comprises multipleprocessing units, one or more of computer program components may belocated remotely from the other computer program components. Whilecomputer program components are described as performing or beingconfigured to perform operations, computer program components maycomprise instructions which may program processor 11 and/or system 10 toperform the operation.

While computer program components are described herein as beingimplemented via processor 11 through machine-readable instructions 100,this is merely for ease of reference and is not meant to be limiting. Insome implementations, one or more functions of computer programcomponents described herein may be implemented via hardware (e.g.,dedicated chip, field-programmable gate array) rather than software. Oneor more functions of computer program components described herein may besoftware-implemented, hardware-implemented, or software andhardware-implemented.

The description of the functionality provided by the different computerprogram components described herein is for illustrative purposes, and isnot intended to be limiting, as any of computer program components mayprovide more or less functionality than is described. For example, oneor more of computer program components may be eliminated, and some orall of its functionality may be provided by other computer programcomponents. As another example, processor 11 may be configured toexecute one or more additional computer program components that mayperform some or all of the functionality attributed to one or more ofcomputer program components described herein.

The electronic storage media of the electronic storage 13 may beprovided integrally (i.e., substantially non-removable) with one or morecomponents of the system 10 and/or as removable storage that isconnectable to one or more components of the system 10 via, for example,a port (e.g., a USB port, a Firewire port, etc.) or a drive (e.g., adisk drive, etc.). The electronic storage 13 may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EPROM, EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive,etc.), and/or other electronically readable storage media. Theelectronic storage 13 may be a separate component within the system 10,or the electronic storage 13 may be provided integrally with one or moreother components of the system 10 (e.g., the processor 11). Although theelectronic storage 13 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, the electronicstorage 13 may comprise a plurality of storage units. These storageunits may be physically located within the same device, or theelectronic storage 13 may represent storage functionality of a pluralityof devices operating in coordination.

FIG. 2 illustrates method 200 for assessing stabilization of videos. Theoperations of method 200 presented below are intended to beillustrative. In some implementations, method 200 may be accomplishedwith one or more additional operations not described, and/or without oneor more of the operations discussed. In some implementations, two ormore of the operations may occur substantially simultaneously.

In some implementations, method 200 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operation of method 200 in response to instructions storedelectronically on one or more electronic storage media. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of method 200.

Referring to FIG. 2 and method 200, at operation 201, video informationand/or other information may be obtained. The video information maydefine a video. The video may include video content having a progresslength. The video content may include visual content captured by animage capture device during a capture duration. The image capture devicemay experience rotational positions as a function of progress throughthe capture duration. In some implementation, operation 201 may beperformed by a processor component the same as or similar to the videoinformation component 102 (Shown in FIG. 1 and described herein).

At operation 202, stabilization information for the video may beobtained. The stabilization information may characterize a stabilizationtrajectory for the video. The stabilization trajectory may reflectstabilization rotational positions as the function of progress throughthe capture duration for stabilization of the visual content. Thestabilization rotational positions may compensate for at least some ofthe rotational positions experienced by the image capture device. Thestabilization trajectory may have a stabilization trajectory length. Insome implementation, operation 202 may be performed by a processorcomponent the same as or similar to the stabilization informationcomponent 104 (Shown in FIG. 1 and described herein).

At operation 203, the stabilization of the visual content may beassessed based on the stabilization trajectory length and/or otherinformation. In some implementation, operation 203 may be performed by aprocessor component the same as or similar to the stabilizationassessment component 106 (Shown in FIG. 1 and described herein).

At operation 204, a change in stabilization for the visual content maybe effectuated based on the assessment of the stabilization of thevisual content and/or other information. In some implementation,operation 204 may be performed by a processor component the same as orsimilar to the change component 108 (Shown in FIG. 1 and describedherein).

Although the system(s) and/or method(s) of this disclosure have beendescribed in detail for the purpose of illustration based on what iscurrently considered to be the most practical and preferredimplementations, it is to be understood that such detail is solely forthat purpose and that the disclosure is not limited to the disclosedimplementations, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present disclosure contemplates that, to the extent possible, one ormore features of any implementation can be combined with one or morefeatures of any other implementation.

What is claimed is:
 1. A system for assessing stabilization of videos,the system comprising: one or more physical processors configured bymachine-readable instructions to: obtain video information defining avideo, the video including visual content captured by an image capturedevice during a capture duration; obtain stabilization information forthe video, the stabilization information characterizing a stabilizationtrajectory for stabilization of the visual content of the video; assessthe stabilization of the visual content of the video based on one ormore characteristics of the stabilization trajectory for thestabilization of the visual content of the video; and effectuate achange in the stabilization of the visual content of the video based onthe assessment of the stabilization of the visual content of the video.2. The system of claim 1, wherein the one or more characteristics of thestabilization trajectory for the stabilization of the visual content ofthe video include length, amplitude, and/or changes in amplitude of thestabilization trajectory.
 3. The system of claim 1, wherein the changein the stabilization of the visual content of the video based on theassessment of the stabilization of the visual content of the videochanges the one or more characteristics of the stabilization trajectory.4. The system of claim 3, wherein the change in the stabilization of thevisual content of the video based on the assessment of the stabilizationof the visual content of the video changes the one or morecharacteristics of the stabilization trajectory by reducing length ofthe stabilization trajectory.
 5. The system of claim 1, wherein theassessment of the stabilization of the visual content of the video basedon the one or more characteristics of the stabilization trajectory forthe stabilization of the visual content of the video includescomputation of a stabilization performance score based on differences inposition or orientation of the image capture device and differences inframe timestamps corresponding to the position or the orientation of theimage capture device.
 6. The system of claim 5, wherein thestabilization performance score is computed in an axis-wise fashion toassess motion around individual axis separately.
 7. The system of claim1, wherein the change in the stabilization of the visual content of thevideo includes a change in one or more stabilization parameters for thestabilization of the visual content of the video.
 8. The system of claim1, wherein the change in the stabilization of the visual content of thevideo includes a change in use of a first stabilization technique to asecond stabilization technique for the stabilization of the visualcontent of the video.
 9. The system of claim 1, wherein the change inthe stabilization of the visual content of the video includes a changein shape of a viewing window used for the stabilization of the visualcontent of the video.
 10. A method for assessing stabilization ofvideos, the method performed by a computing system including one or moreprocessors, the method comprising: obtaining, by the computing system,video information defining a video, the video including visual contentcaptured by an image capture device during a capture duration;obtaining, by the computing system, stabilization information for thevideo, the stabilization information characterizing a stabilizationtrajectory for stabilization of the visual content of the video;assessing, by the computing system, the stabilization of the visualcontent of the video based on one or more characteristics of thestabilization trajectory for the stabilization of the visual content ofthe video; and effectuating, by the computing system, a change in thestabilization of the visual content of the video based on the assessmentof the stabilization of the visual content of the video.
 11. The methodof claim 10, wherein the one or more characteristics of thestabilization trajectory for the stabilization of the visual content ofthe video include length, amplitude, and/or changes in amplitude of thestabilization trajectory.
 12. The method of claim 10, wherein the changein the stabilization of the visual content of the video based on theassessment of the stabilization of the visual content of the videochanges the one or more characteristics of the stabilization trajectory.13. The method of claim 12, wherein the change in the stabilization ofthe visual content of the video based on the assessment of thestabilization of the visual content of the video changes the one or morecharacteristics of the stabilization trajectory by reducing length ofthe stabilization trajectory.
 14. The method of claim 10, whereinassessing the stabilization of the visual content of the video based onthe one or more characteristics of the stabilization trajectory for thestabilization of the visual content of the video includes computing astabilization performance score based on differences in position ororientation of the image capture device and differences in frametimestamps corresponding to the position or the orientation of the imagecapture device.
 15. The method of claim 14, wherein the stabilizationperformance score is computed in an axis-wise fashion to assess motionaround individual axis separately.
 16. The method of claim 10, whereinthe change in the stabilization of the visual content of the videoincludes a change in one or more stabilization parameters for thestabilization of the visual content of the video.
 17. The method ofclaim 10, wherein the change in the stabilization of the visual contentof the video includes a change in use of a first stabilization techniqueto a second stabilization technique for the stabilization of the visualcontent of the video.
 18. The method of claim 10, wherein the change inthe stabilization of the visual content of the video includes a changein shape of a viewing window used for the stabilization of the visualcontent of the video.
 19. A system for assessing stabilization ofvideos, the system comprising: one or more physical processorsconfigured by machine-readable instructions to: obtain video informationdefining a video, the video including visual content captured by animage capture device during a capture duration; obtain stabilizationinformation for the video, the stabilization information characterizinga stabilization trajectory for stabilization of the visual content ofthe video; assess the stabilization of the visual content of the videobased on one or more characteristics of the stabilization trajectory forthe stabilization of the visual content of the video, the one or morecharacteristics of the stabilization trajectory for the stabilization ofthe visual content of the video including length, amplitude, and/orchanges in amplitude of the stabilization trajectory; and effectuate achange in the stabilization of the visual content of the video based onthe assessment of the stabilization of the visual content of the video.20. The system of claim 19, wherein: the change in the stabilization ofthe visual content of the video includes a change in shape of a viewingwindow used for the stabilization of the visual content of the video;and the change in the stabilization of the visual content of the videobased on the assessment of the stabilization of the visual content ofthe video changes the one or more characteristics of the stabilizationtrajectory by reducing length of the stabilization trajectory.